TNC-2 1.1.8  20 MAR 92  $F8  (16 bit checksum=21f8)


                   Tucson Amateur Packet Radio TNC-2
                             Release 1.1.8
                        Firmware revision notes

Note:  The information in this package supplements, and in some cases
supercedes, the information provided in the TAPR 1.1.7 command booklet.

Overview:

   Release 1.1.8 provides new features and fixes a couple of small bugs. 
The frequently demanded host mode is now present, along with code that
proposes a standard for polling other TNCs in a LAN without knowing all
of the other TNCs' callsigns.


                             NEW FEATURES

Host mode

   Release 1.1.8 supports a layered, relatively easy-to-implement
protocol set (QAFT, DLC, and BLP) that enables the robust connection of
one or more computers or TNCs to a TNC-2's RS-232 port.  A separately
provided .ZIP archive available from TAPR contains documentation, a
similarly poorly written host mode terminal program for a DOS machine,
and even more poorly written protocol drivers in Microsoft C source.

   Warning:  Host mode has not been thoroughly tested by either the
author or TAPR.  Please report any bugs to either or both for a hopefully
prompt resolution of the problem.


QRA or help for My path's fallen, and it can't get up

   QRA ("Who are you") pinging is supported in release 1.1.8. A QRA ping
polls all of the TNCs within range.  Each TNC hearing the QRA ping will
transmit its identification packet within 1 to 16. This technique
provides the names of all reachable TNCs and digipeaters to the new,
roving, and emergency-use packeteer.  Also see "ANSWRQRA" command.

   Note that the QRA function will not work if there are any digipeaters
in the UNPROTO path.  This somewhat, but not completely, helps limit a
malevolent user's ability to seriously harm the network.

   Sending QRA ping:

   1) Set the unprotocol callsign to QRA
        cmd: UNPROTO  QRA<cr>

   2) Manually send an unconnected packet
        cmd: CONVERSE<cr>
        <cr>
        ^C
        cmd:

   3) In 1-16 seconds, if MONITOR is ON you should be receiving packets
empty identification packets from other connectable and compatible TNCs.

        WB9FLW>ID:
        AD7I>ID:
        W5DID>ID:


                             NEW COMMANDS




ANSWRQRA  ON|OFF                                            Default: ON

Setting ANSWRQRA to OFF disables the TNC's ping-response function.  When
the parameter is set ON, the TNC responds to non-digipeated UI frames
addressed to QRA, within 1 to 16 seconds, with an empty ID packet.  TNC-2
ignores QRA packets when ANSWRQRA is off.


KISSM   {immediate command}

This command may be used to cause the TNC to immediately begin running
the KISS code.  Note this is a different protocol than used by TNC-2
QAFT/DLC/BLP.


OUT nn  0<=nn<=255

The value 'nn' is sent to the TNC's z/80 i/o port 0BFH.  Note that the
last value 'nn' is sent to the i/o port frequently, but not immediately. 
In this context, 'frequently' means many times per second, and 'not
immediately' means within at most 100ms.


TXDIDDLE ON|OFF                                             Default: ON

The TNC sends NRZI 0s during TXDELAY/TXDELAYC intervals if TXDIDDLE is
ON, and 7EH flags when it is OFF.  TXDIDDLE should be kept ON unless you
are certain the TNCs in your network require lengthy flagging intervals.

A few 1.1.7 users (TXDIDDLE was forced to ON in 1.1.7) reported problems
with other TNCs that require flags during TXDELAY/TXDELAYC for carrier
detection.  Now when this problem crops up, the 1.1.8 user has the
ability to turn TXDIDDLE OFF and restore connectivity.



                                 FIXES


o -Fixed the erroneous bbRAM failure indication that sometimes happened
   when the  already-connected remote TNC reconnected through a different
   path.

o -Repaired the transparent mode "TXFLOW ineffectiveness during XFLOW ON"
   bug.

o -KISS has access to 75BAH bytes of free RAM


Please send suggestions, comments, criticisms to Tucson Amateur Packet
Radio, Inc., or direct to the TNC-2 evolution control substation
maintained by

                      Howard Goldstein N2WX@W4DPH
                           CIS:   75006,702
                          GENIE: H.GOLDSTEIN5
                       FAX only: 1-813-321-5396


                TNC-2 - The revolution hangs in there!


                  Tucson Amateur Packet Radio
                       P. O. Box 12925
                   Tucson, AZ 85732-2925


     ---------------------------------------------------------------------


Default Locations

The default parameters for the various TNC 2 commands are located in the
1.1.8 EPROM.  The defaults are documented here for those of you who wish
to change them for particular applications (such as remotely located
units, etc.).  For release 1.1.8, the defaults table is found at address
0B98 hex.

NOTE:  In future releases of firmware, this location may change.  There
is a pointer at address 0055H which contains the location of the default
area in Z80 low-byte/high-byte format.

WARNING!  The TNC 2 firmware does not check for valid defaults.  If you
program an invalid default (for example, parity 5), unpredictable results
may occur.  Be sure you double-check any defaults you change!

The defaults are listed in the table below.  All notes follow the table.

EPROM             Value     Meaning   Command   Notes
Address      (Hex)
(Hex)
0B98         21   33        DWAIT     33*10 mSec
0B99         00   0         AXHANG    0*100 mSec
0B9A         00   0         PACTIME   EVERY/AFTER* 
0B9B         0A   10        PACTIME   10*100 mSec
0B9C         21   33        DEADTIME  33*10 mSec
0B9D         0E   14        ACKTIME   14*10 mSec
0B9E         02   2         DLCTICKTIME    (do not change this)
0B9F         01   1         CMDTIME   1*1 Sec
0BA0         21   33        TXDELAY   33*10 mSec
0BA1         05   5         reserved - must be 5
0BA2         1E   30        TXTMOTMR  30*1 Sec  Note 1
0BA3         01   1         TODVAL    1*1 Sec   Note 2
0BA4         39   57        IDVAL     57*10 Sec Note 3
0BA5         00   0         RESPTIME  0*100 mSecStream A
0BA6         00   0         RESPTIME  0*100 mSecStream B
0BA7         00   0         RESPTIME  0*100 mSecStream C
0BA8         00   0         RESPTIME  0*100 mSecStream D
0BA9         00   0         RESPTIME  0*100 mSecStream E
0BAA         00   0         RESPTIME  0*100 mSecStream F
0BAB         00   0         RESPTIME  0*100 mSecStream G
0BAC         00   0         RESPTIME  0*100 mSecStream H
0BAD         00   0         RESPTIME  0*100 mSecStream I
0BAE         00   0         RESPTIME  0*100 mSecStream J
0BAF         0C   12        CHECK     12*10 Sec Stream A
0BB0         0C   12        CHECK     12*10 Sec Stream B
0BB1         0C   12        CHECK     12*10 Sec Stream C
0BB2         0C   12        CHECK     12*10 Sec Stream D
0BB3         0C   12        CHECK     12*10 Sec Stream E
0BB4         0C   12        CHECK     12*10 Sec Stream F
0BB5         0C   12        CHECK     12*10 Sec Stream G
0BB6         0C   12        CHECK     12*10 Sec Stream H
0BB7         0C   12        CHECK     12*10 Sec Stream I
0BB8         0C   12        CHECK     12*10 Sec Stream J
0BB9         05   5         reserved - must be 5
0BBA         00   0         reserved - must be 0
0BBB         00   0         reserved - must be 0
0BBC         00   0         reserved - must be 0
0BBD         00   0         reserved - must be 0
0BBE         00   0         reserved - must be 0
0BBF         00   0         reserved - must be 0
0BC0         00   0         reserved - must be 0
0BC1         00   0         reserved - must be 0
0BC2         00   0         reserved - must be 0
0BC3         00   0         reserved - must be 0
0BC4         01   1         BEACON EVERY/AFTER*,DEF EVERY
0BC5         00   0         BEACON TIME (0 = never)
0BC6         9C   'N'       MYCALL              Note 4
0BC7         9E   'O'
0BC8         86   'C'
0BC9         82   'A'
0BCA         98   'L'
0BCB         98   'L'
0BCC         60   SSID 0
0BCD         00   0         must be 0 - end of callsign string
0BCE         40   ' '       MYALIAS             Note 4
0BCF         40   ' '
0BD0         40   ' '
0BD1         40   ' '
0BD2         40   ' '
0BD3         40   ' '
0BD4         60   SSID 0
0BD5         00   0         must be 0 - end of callsign string
0BD6         08   8         FRACK     8*1 Sec
0BD7         80   128       PACLEN
0BD8         0A   10        RETRY
0BD9         00   0         reserved - must be 0
0BDA         04   4         MAXFRAME
0BDB         07   7         AWLEN - must be 7 or 8
0BDC         03   3         PARITY    EVEN      Note 5
0BDD         00   0         AXDELAY
0BDE         02   2         TXDELAYC
0BDF         03   3         SLOTS
0BE0         7C   '|'       STREAMSW Character
0BE1         01   1         USERS
0BE2         0D   ^M        SENDPAC Character
0BE3         18   ^X        CANLINE Character
0BE4         19   ^Y        CANPAC Character
0BE5         03   ^C        COMMAND Character
0BE6         08   ^H        DELETE Character
0BE7         16   ^V        PASS Character
0BE8         12   ^R        REDISPLAY Character
0BE9         13   ^S        STOP Character
0BEA         11   ^Q        START Character
0BEB         13   ^S        XOFF Character
0BEC         11   ^Q        XON Character
0BED         00   0         NULLS
0BEE         00   0         SCREENLN
0BEF         0000 0         CLKADJ
0BF1         00   0         TAPRLATCH      
0BF2         00   0         MFILTER 1st Parameter
0BF3         00   0         MFILTER 2nd Parameter
0BF4         00   0         MFILTER 3rd Parameter
0BF5         00   0         MFILTER 4th Parameter
0BF6         00   0         MFILTER 5th Parameter
0BF7         09   CMDS3                         Note 7
0BF8         6A   CMDS4                         Note 8
0BF9         44   CMDS5                         Note 9
0BFA         00   CMDS6                         Note 10
0BFB         20   CMDS7                         Note 11
0BFC         3D   CMDS8                         Note 12
0BFD         02   CMDS9                         Note 13
0BFE         46   CMDS10                        Note 14
0BFF         1F   CMDS11                        Note 15
0C00         60   CMDS12                        Note 16
0C01         B8   CMDS13                        Note 17
0C02         60   CMDS14                        Note 18
0C03         00   0         MYDLCNUM
0C04         FE   254       DEFLTDLC
0C05         00   0         Last Beacon Time - default to 0
0C06         8D             reserved - must be 08DH
0C07         00   0         reserved - must be 0
0C08         00   0         reserved - must be 0
0C09         00   0         reserved - must be 0
0C0A         00   0         reserved - must be 0
0C0B         00   0         reserved - must be 0
0C0C         00   0         reserved - must be 0
0C0D         00   0         reserved - must be 0
0C0E         00   0         reserved - must be 0
0C0F         00   0         reserved - must be 0
0C10         00   0         reserved - must be 0
0C11         00   0         reserved - must be 0
0C12         00   0         reserved - must be 0
0C13         00   0         reserved - must be 0
0C14         00   0         reserved - must be 0
0C15         00   0         reserved - must be 0
0C16         00   0         reserved - must be 0
0C17         00   0         reserved - must be 0
0C18         86   'C'       UNPROTO CALL        See Note 4
0C19         A2   'Q'
0C1A         40   ' '
0C1B         40   ' '
0C1C         40   ' '
0C1D         40   ' '
0C1E         60   SSID 0
0C1F         00   0         must be 0 - end of callsign string
0C25              MFLAGS                        Note 19
0C26              DFLAGS                        Note 20
0C27              CONFLAG                       Note 21
0C28              ENTRYSTA                      Note 22
0C29              ENT2                          Note 23

NOTES

Note 1
   This is the timer which, when it is exceeded, increments the TXTIMEOUT
   Health counter.

Note 2
   TODVAL specifies the number of "ticks" the DAYTIME clock increments
   each second.  It should always be set to 1.

Note 3
   IDVAL is not otherwise settable.  It specifies the number of 10-second
   intervals which elapse between IDs when HID is ON.

Note 4
   Callsigns are encoded per the AX.25 standard document.  A callsign
   consists of six (6) numbers and letters.  The letters must be upper
   case and, if the callsign is less than six (6) elements long, must be
   right-filled with blanks.  The ASCII values corresponding to the
   letters and numbers must be left-shifted one bit.

   The letters and numbers in HEX are:

  Char      ASCII      Call
   (BLANK)   20        40
   A         41        82
   B         42        84
   C         43        86
   D         44        88
   E         45        8A
   F         46        8C
   G         47        8E
   H         48        90
   I         49        92
   J         4A        94
   K         4B        96
   L         4C        98
   M         4D        9A
   N         4E        9C
   O         4F        9E
   P         50        A0
   Q         51        A2
   R         52        A4   
   S         53        A6
   T         54        A8
   U         55        AA
   V         56        AC
   W         57        AE
   X         58        B0
   Y         59        B2
   Z         5A        B4
   0         30        60
   1         31        62
   2         32        64
   3         33        66
   4         34        68
   5         35        6A
   6         36        6C
   7         37        6E
   8         38        70
   9         39        72

A seventh callsign value is the secondary station ID (SSID).  This is a
value from 0 through 15 and is encoded as:

Bit  7    6    5    4    3    2    1    0
     0    1    1    D    C    B    A    0

where D is the most significant bit and A the least in the binary value
(0 through 15).

Note 5

Parity for the asynchronous serial port is:

     Value     Meaning 
       0       None
       1       Odd
       2       None
       3       Even

Note 6

Binary status and parameter elements (commands whose arguments are
ON/OFF) are encoded as 

     ON  = TRUE  = 1
     OFF = FALSE = 0

Commands which are "negative-true logic" (FALSE = 1 and TRUE = 0) are
indicated by trailing asterisks (*).
There are several defaults that are encoded on a bit basis.  These are
listed below.

Note 7    CMDS3
     Bit  Command   Default
     7-   CMSG on/off
     6-   CONMODE   trans/conv*
     5-   NULF      on/off
     4-   NUCR on/off
     3-   LCOK      on/off
     2-   PASSALL   on/off
     1-   TXFLOW    on/off
     0-   AX25L2V2  on/off

Note 8    CMDS4
     Bit  Command   Default
     7-   ESCAPE    on/off
     6-   XMITOK    on/off
     5-   DIGIPEAT  on/off
     4-   LFADD     on/off
     3-   BKONDEL   on/off
     2-   DELETE    on/off
     1-   ECHO on/off
     0-   BUDLIST   on/off

Note 9    CMDS5
     Bit  Command   Default
     7-   CONSTAMP  on/off
     6-   DAYUSA    on/off
     5-   NEWMODE   on/off
     4-   reserved
     3-   MCOM on/off
     2-   MALL on/off
     1-   HID       on/off
     0-   HEADRLN   on/off

Note 10   CMDS6
     Bit  Command   Default
     7-   STREAMCA  on/off
     6-   STREAMDB  on/off
     5-   reserved
     4-   reserved
     3-   reserved
     2-   8BITCONV  on/off
     1-   TRFLOW    on/off
     0-   MSTAMP    on/off

Note 11   CMDS7
     Bit  Command   Default
     7-   reserved
     6-   reserved
     5-   LCSTREAM  on/off
     4-   reserved
     3-   NOMODE    on/off
     2-   RXBLOCK   on/off
     1-   HEALLED   on/off
     0-   CBELL     on/off

Note 12   CMDS8
     Bit  Command   Default
     7-   LFIGNORE  on/off
     6-   CMSGDISC  on/off
     5-   reserved
     4-   reserved
     3-   reserved
     2-   reserved
     1-   reserved
     0-   reserved

Note 13   CMDS9
     Bit  Command   Default
     7-   reserved
     6-   BBSMSGS   on/off
     5-   reserved
     4-   reserved
     3-   reserved
     2-   reserved
     1-   reserved
     0-   reserved

Note 14   CMDS10
     Bit  Command   Default
     7-   reserved
     6-   reserved
     5-   reserved
     4-   reserved
     3-   reserved
     2-   reserved
     1-   reserved
     0-   reserved

Note 15   CMDS11
     Bit  Command   Default
     7-   reserved
     6-   MNONAX25  on/off
     5-   reserved
     4-   reserved
     3-   reserved
     2-   reserved
     1-   TXUIFRAM  on/off
     0-   FIRMRNR   on/off

Note 16   CMDS12
     Bit  Command   Default
     7-   reserved
     6-   ACKPRIOR  on/off
     5-   TXDIDDLE  on/off
     4-   KISS      on/off
     3-   CHECKV1   on/off
     2-   reserved
     1-   reserved
     0-   reserved

Note 17   CMDS13
     Bit  Command   Default
     7-   reserved
     6-   reserved
     5-   reserved
     4-   reserved
     3-   reserved
     2-   BLP       on/off
     1-   reserved
     0-   reserved

Note 18   CMDS14
     Bit  Command   Default
     7-   reserved
     6-   ANSWRQRA  on/off
     5-   reserved
     4-   reserved
     3-   reserved
     2-   reserved
     1-   reserved
     0-   reserved

Note 19   MFLAGS
     Bit  Command   Default
     7-   reserved
     6-   reserved
     5-   reserved
     4-   reserved
     3-   TRACE     Off
     2-   MCON On
     1-   MRPT On
     0-   MONITOR   On

Note 20   DFLAGS
     Bit  Command   Default
     7-   reserved
     6-   reserved
     5-   reserved
     4-   reserved
     3-   reserved
     2-   reserved
     1-   reserved
     0-   reserved

Note 21   CONFLAG
     Bit  Command   Default
     7-   reserved
     6-   reserved
     5-   reserved
     4-   FLOW On
     3-   CR        On
     2-   reserved
     1-   FULLDUP   Off
     0-   CONOK     On

Note 22   ENTRYSTA
     Bit  Command   Default
     7-   reserved
     6-   reserved
     5-   reserved
     4-   reserved
     3-   reserved
     2-   reserved
     1-   AUTOLF    On
     0-   reserved

Note 23   ENT2
     Bit  Command   Default
     7-   reserved
     6-   reserved
     5-   reserved
     4-   reserved
     3-   reserved
     2-   XFLOW     On
     1-   reserved
     0-   reserved
